package br.unifor.cadeventos.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import br.unifor.cadeventos.entity.TipoEventos;

public class TipoEventosDAO {

	private EntityManager em = new EntityManager() {
		
		@Override
		public Object trataResultSet(ResultSet resultSet) throws SQLException {
			TipoEventos tipoEvento = new TipoEventos();
			tipoEvento.setId(resultSet.getInt("id"));
			tipoEvento.setDescricao(resultSet.getString("descricao"));
			return tipoEvento;
		}
	};

	public void salvar(TipoEventos tipoEvento) throws SQLException {

		String sql = "insert into tipo_eventos(descricao) values (?)";
		em.executeQuery(sql, tipoEvento.getDescricao());
	}

	public void atualizar(TipoEventos tipoEvento) throws SQLException {
		String sql = "update tipo_eventos set descricao = ? where id = ?";
		em.executeQuery(sql, tipoEvento.getDescricao(), tipoEvento.getId());
	}

	public void excluirPorId(Integer id) throws SQLException {
		String sql = "delete from tipo_eventos where id = ?";
		em.executeQuery(sql, id);
	}

	public void excluirTodos() throws SQLException {

		String sql = "delete from tipo_eventos";
		em.executeQuery(sql);
	}

	public TipoEventos buscarPorId(Integer id) throws SQLException {
		
		String sql = "select id, descricao "
				+ "from tipo_eventos where id = ?";
		return (TipoEventos)em.getSingleResult(sql, id);
	}
	
	@SuppressWarnings("unchecked")
	public List<TipoEventos> buscarTodos() throws SQLException{
		String sql = "select id, descricao from tipo_eventos";
		return (List<TipoEventos>)em.getResultList(sql);
	}

}
